import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(fibd(n));
    }

    public static int fibd(int n) {
        if(n==1 || n==2) {
            return 1;
        }
        int f1=1,f2=1,f3=0;
        for(int i = 3; i <= n; i++) {
            f3 = f1 + f2;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }

    public static int fib(int n) {
        if(n==1 || n==2) {
            return 1;
        }
        return fib(n-1) + fib(n-2);
    }
    public static int func(int n) {
        //递归出口
        if(n==1) {
            return 1;
        }
        //递归逼近条件
        return n * func(n-1);
    }

    public static void main1(String[] args) {
        //求N的阶乘
        //输入
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(func(n));
    }
}
//    public static void main5(String[] args) {
//        //数组
//        int[] arr = {1,2,3,4,5,6,7,8,9};
//        for(int i = 0; i < arr.length; i++) {
//            System.out.print(arr[i]+" ");
//        }
//    }
//    public static void main4(String[] args) {
//        //使用循环来实现求第N项斐波那契数列值
//        //输入
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt();
//        //循环
//        int n1 = 1;
//        int n2 = 1;
//        int fib = 1;
//
//        for(int i = 0; i < (n-2); i++) {
//            fib = n1 + n2;
//            n1 = n2;
//            n2 = fib;
//        }
//        System.out.println(fib);
//    }
//    public static void main3(String[] args) {
//        //输入
//        Scanner in = new Scanner(System.in);
//        int num = in.nextInt();
//        //链式运算
//        System.out.println(psum(num));
//    }
//    public static int psum(int num) {
//        if(num<10) {
//            return num;
//        }
//        return (num%10) + psum(num/10);
//    }
//    public static void func(int num) {
//        //num/10==0,说明num为个位数，直接打印即可
//        if(num/10==0) {
//            System.out.printf("%d ",num );
//        }
//        //else即是num至少是两位数，先调用func递推下去
//        //直到剩下最后一个数字再打印并回归，即可完成正序打印
//        else
//        {
//            func(num/10);
//            System.out.printf("%d ",num%10);
//        }
//    }
//    public static void main2(String[] args) {
//        //调用方法，循环打印正序打印一个数的每一位
//        //如输入12345 输出1 2 3 4 5
//        Scanner in = new Scanner(System.in);
//        int num = in.nextInt();
//        func(num);
//    }
//    public static void main1(String[] args) {
//        System.out.println("Hello world!");
//    }
//}